package rohyunji;


public class J01_Fundamentals {

	/*
	 opp프로그램을 개발할때  현실세계과 같은 객체모델을 만들어야함 예를 들어 급여프로그램은 직원,세금,회사 객체들이 있어야함 
	 하지만,자바에서 객체는 유일한 데이터 형이 아님
	 기본(원시)자료형
	 자바에서 기본 자료형은 모두 8가지가 있음 처음 6개의 기본자료형은 숫자를 나타냄
	 byte,short,int,long,float,double
	 자연수,정수 :byte,short,int,long
	 소수점이있는정수 :float,double
	
	char 단일 문자저장시사용
	boolean논리값(참,거짓) 저장시사용
	프로그램 작성시 사용하려는 자료의 크기에 따라 적절히 자료형 선택 
	
	변수(Varable)
	데이터가 저장될 장소를의미 , 자바는 엄격하게 자료형을 검사하는 언어임
	따라서 모든변수는 자료형이 선언되어야함
	각각의 변수를 구분하기위해 변수에 이름을부여
	이것을 변수명 식별자 identifier라함
	
	변수명명법
	1.식별자는 자바문자와 자바숫자로만 구성 (길이는 무제한) 단 식별자는 첫글자는 문자이어야한다.
	2. 식별자는 자바의 예약어 boolean 리터럴(true,false) ,null 리터럴이면 안됨
	3.식별자는 특정 범위 scope내에서 유일해야함(중복불가)
	4.식별자는 대/소문자를 구분함 (x2,X2서로 다르다)
	
	자바문자/자바숫자
	자바문자는 ASCII 문자집합의 소/대 영문자, 달러$문자와 밑줄 _ 문자를의미
	자바숫자는 ASCII 문자집합의 숫자0~9를 의미
	
	리터럴 Literal
	가끔 프로그램상에서 변수에 값을 할당할때가있음 
	예를 들어 int에 숫자2나 char문제'a'처럼 변수에 값을 할당할때이값은 컴파일러가이해할수 있는 형식으로 표현해야함
	소스코드상의 값 표현법을 리터럴이라함
	종류는 기본자료형(정수/실수/무자/논리값) 리터럴,문자열 String 리터럴 ,널null문자 리터럴 
	
	유니코드 unicode
	
	전통적으로 영어권 나라들은 알파벳을 표기하기위해  ASCII문자집합을 사용
	ASCII문자집합에서 각문자는 7비트를 사용하고 총 128개의 문자를 나타낼수있음 
	유럽권 문자표기를 위해 확장 ASCII문자집합사용  총256개의 문자를 사용
	하지만 모든 국가들이 라틴문자를 사용하진 않음 동양문화권엣 속한나라들은 다른 문자집합을 사용함
	게다가 8비트로 수천개의 문자를 나타내기에는 무리가있음 
	한편 한국에서사용하는 문자집합 중 EUC-KR은 8비트 한글완성형 문자 인코딩 ISO-2022-KR이라고도 불림 사용빈도가 높은
	2350자만을채택
	기존의 부족했던 완성형 한글을 보완하기 위해 윈도 95부터 CP949(MS949)라는 문자인코딩을 확장완성형이라는 명칭으로
	도입. KS C 5601-1987 라고 불리기도함 현대의 모든 한글을수용하게됨 (8822자추가)
	
	유니코드는 유니코드 컨소시움이라는 비영리단체에서 개발된 문자집합임.전세계언어를 하나의 문자집합에 포함하려함
	유니코드에있는 고유번호로 정확히 한 문자를 표시 
	UTF-8 가장 많이 쓰이는 문자들 
	
	
	UTF-8
	바이트 가변길이 인코디응로 유니코드 문자를 나타냄 
	즉 영어는 1바이트 한글은 3바이트를 이용함  대부분의 브라우도 UTF-8 인코딩을 지원함
	 
	 */
	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//변수및 자료형 선언
		

		
		
		//변수에 값 할당(변수명=리터럴)
		short birth_year=1990;
		int birth_year1=1991;
		float pi=3.14F;
		//실수리터럴은기본적으로double형으로인식,double형값을float값으로담으려니깐
		// 접미사는 대문자로 ~~~~
		
		long jumin=90022271111111L; //정수리터럴 
		char name1='노';
		char name2='윤';
		char _name3='지';
		char name_1='호',name_2='호',name_3='호';
		char grade='A';
		boolean isMale=false,isMarried=false; //동일한자료형일때씀,단가독성 ㄴㄴ
		char code1='\uC790';//유니코드
		char code2='\uBC14';
		char symbol1='\u263A';//기호
		char symbol2='\u2639';
		
		
		
		System.out.println("주민번호:  "+jumin+"(" +birth_year+")");
		System.out.println("code1 ="+code1+", code2= " +code2+", symbol1="+symbol1+", symbol2="+symbol2);
		System.out.println("성명 : "+name1+name2+_name3);
		System.out.println("성적  :   "+grade+"  ... 그럼  원주율얼마? "+pi);
		System.out.println("결혼여부 :  "+isMale);
		System.out.println("남자? : "+isMarried);
		System.out.println(" history왜구래?");
		System.out.println(code1+""+code2);
	
	
		
		

	}

}

